package functii;


/**
 * clasa Putere trateaza functia algebrica putere,si mosteneste clasa Functie
 * @author Sorica Alexandra
 */
public abstract class Putere extends Functie {
	public String concatTermeni(String a, String b){
		String aux;
		if (a.compareTo("0") == 0 && b.compareTo("0") == 0)
			aux=a;
		else 
			if(a.compareTo("0") == 0)
				aux="1";
			else
				aux=a+"^"+b;
		return aux;
	}
	public static String concatTermens(String a, String b)
	{
		String aux;
		if(a.compareTo("0")==0 && b.compareTo("0")==0)
			aux=a;
		else
			if(a.compareTo("0")==0)
				aux="0";
			else 
				if(b.compareTo("0")==0)
					aux="1";
				else
					aux=a+"^"+b;
		return aux;
	}
}
	/**

	public static double putere=3;
	*/
	/**
	 * functia calcul(double aux1) calculeaza valoarea functiei intr-un anumit pct
	 * @param aux1-primeste ca argument o variabila double reprezentand valoarea in 
	 * care dorim sa calculam valoarea functiei
	 * @return returneaza un double reprez valoarea fucntiei
	 */
	/**
	public static double calcul(double aux1){
		return Math.pow(aux1,putere);
		}
	*/
	/**
	 * returneaza chiar valoarea argumentului functiei
	 */
	/**
	public double calcul(){
		if (ns == null)
			System.exit(1);
		return calcul(ns.calcul());
		}
	*/
	/**
	 * returneaza un string reprezentand derivarea functiei
	 */
	/**
	public String derivare(){
		if (ns == null)
			System.exit(1);
		return Produs.concatTermens(ns.derivare(),
				Double.toString(putere)+"*"+ns.toString()+"^"+Double.toString(putere-1));
		}
	*/
	/**
	 * calculeaza valoarea derivatei intr-un anumit punct
	 */
	/**
	public double calculDerivata(){
		if (ns == null)
			System.exit(1);
		return Produs.Calcul(ns.calculDerivata(),putere*Math.pow(ns.calcul(), putere-1));
		}
	public String toString(){
		if (ns == null)
			System.exit(1);
		return concatTermeni(ns.toString());
		}
	*/
	/**
	 * este folosita pentru construirea unui sir de caractere reprez numele fuctiei 
	 * si argumentul acesteia
	 * @param aux1 primeste ca argument un string reprezentand argumentul functiei
	 * @return returneaza un string reprezentand numele functiei
	 */
	
/**
	public double calculeazaValoare() {
		return this.calcul();
		}
	}
*/